Video decoder with signaling

ABSTRACT

A method of decoding a video bitstream is disclosed. The method includes: using a set of previously decoded pictures for decoding a subsequent picture; receiving a delta_poc_msb_present_flag indicating whether a delta_poc_msb_cycle_lt is present or not present, wherein the delta_poc_msb_cycle_lt being present indicates that more than one reference picture in the set of previously decoded pictures having same value, wherein the first previously decoded picture has a temporal ID being equal to zero, is not a RASL picture, not a RADL picture, not a sub-layer non-reference picture.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/480,158, filed on Apr. 5, 2017, which is a continuation of U.S.patent application Ser. No. 14/156,115, filed on Jan. 15, 2014, now U.S.Pat. No. 9,674,524, which claims priority to U.S. ProvisionalApplication No. 61/752,937, filed on Jan. 15, 2013. All of theafore-mentioned patent applications are hereby incorporated by referencein their entireties.

BACKGROUND OF THE INVENTION

The present invention relates to video encoding and/or decoding.

Digital video is typically represented as a series of images or frames,each of which contains an array of pixels. Each pixel includesinformation, such as intensity and/or color information. In many cases,each pixel is represented as a set of three colors, each of which may bedefined by eight bit color values.

Video-coding techniques, for example H.264/MPEG-4 AVC (H.264/AVC),typically provide higher coding efficiency at the expense of increasingcomplexity. Increasing image quality requirements and increasing imageresolution requirements for video coding techniques also increase thecoding complexity. Video decoders that are suitable for paralleldecoding may improve the speed of the decoding process and reduce memoryrequirements; video encoders that are suitable for parallel encoding mayimprove the speed of the encoding process and reduce memoryrequirements.

H.264/MPEG-4 AVC [Joint Video Team of ITU-T VCEG and ISO/IEC MPEG,“H.264: Advanced video coding for generic audiovisual services,” ITU-TRec. H.264 and ISO/IEC 14496-10 (MPEG4—Part 10), November 2007], andsimilarly the JCT-VC, [“Draft Test Model Under Consideration”,JCTVC-A205, JCT-VC Meeting, Dresden, April 2010 (JCT-VC)], both of whichare incorporated by reference herein in their entirety, are video codec(encoder/decoder) specifications that decode pictures based uponreference pictures in a video sequence for compression efficiency.

The foregoing and other objectives, features, and advantages of theinvention will be more readily understood upon consideration of thefollowing detailed description of the invention, taken in conjunctionwith the accompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates a H.264/AVC video encoder.

FIG. 2 illustrates a H.264/AVC video decoder.

FIG. 3 illustrates an exemplary slice structure.

FIG. 4 illustrates another exemplary slice structure.

FIG. 5 illustrates reconstruction of an entropy slice.

FIG. 6 illustrates reconstruction of an portion of the entropy slice ofFIG. 5.

FIG. 7 illustrates reconstruction of an entropy slice with an omittedLSB count value.

FIG. 8 illustrates reconstruction of an entropy slice with a long termpicture value.

FIG. 9 illustrates reconstruction of an entropy slice by selecting afirst preceding frame with a long term picture value.

FIG. 10 illustrates reconstruction of an entropy slice by usingduplicate long term picture frame having the same least significant bitcount value.

FIG. 11A and FIG. 11B illustrates a technique for selecting a referenceframe.

FIG. 12 illustrates another technique for selecting a reference frame.

FIG. 13A and FIG. 13B illustrates another technique for selecting areference frame.

FIG. 14 illustrates another technique for selecting a reference frame.

FIG. 15 illustrates pictures for which delta_poc_msb_present_flag[i] isset to 1.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

While any video coder/decoder (codec) that uses encoding/decoding may beaccommodated by embodiments described herein, exemplary embodiments aredescribed in relation to an H.264/AVC encoder and an H.264/AVC decodermerely for purposes of illustration. Many video coding techniques arebased on a block-based hybrid video-coding approach, wherein thesource-coding technique is a hybrid of inter-picture, also consideredinter-frame, prediction, intra-picture, also considered intra-frame,prediction and transform coding of a prediction residual. Inter-frameprediction may exploit temporal redundancies, and intra-frame andtransform coding of the prediction residual may exploit spatialredundancies.

FIG. 1 is a block diagram illustrating an exemplary encoder 104 for anelectronic device 102. It should be noted that one or more of theelements illustrated as included within the electronic device 102 may beimplemented in hardware, and/or software. For example, the electronicdevice 102 includes an encoder 104, which may be implemented in hardwareand/or software.

The electronic device 102 may include a supplier 134. The supplier 134may provide picture or image data (e.g., video) as a source 106 to theencoder 104. Non limiting examples of the supplier 134 include imagesensors, memory, communication interfaces, network interfaces, wirelessreceivers, ports, video frame content, previously encoded video content,non-encoded video content, etc.

The source 106 may be provided to an intra-frame prediction module andreconstruction buffer 140. The source 106 may also be provided to amotion estimation and motion compensation module 166 and to asubtraction module 146.

The intra-frame prediction module and reconstruction buffer 140 maygenerate intra mode information 148 and an intra signal 142 based on thesource 106 and reconstructed data 180. The motion estimation and motioncompensation module 166 may generate inter mode information 168 and aninter signal 144 based on the source 106 and a reference picture buffer196 signal 198.

The reference picture buffer 196 signal 198 may include data from one ormore reference pictures stored in the reference picture buffer 196. Thereference picture buffer 196 may also include an RPS index initializermodule 108. The initializer module 108 may process reference picturescorresponding to the buffering and list construction of an RPS.

The encoder 104 may select between the intra signal 142 and the intersignal 144 in accordance with a mode. The intra signal 142 may be usedin order to exploit spatial characteristics within a picture in an intracoding mode. The inter signal 144 may be used in order to exploittemporal characteristics between pictures in an inter coding mode. Whilein the intra coding mode, the intra signal 142 may be provided to thesubtraction module 146 and the intra mode information 158 may beprovided to an entropy coding module 160. While in the inter codingmode, the inter signal 144 may be provided to the subtraction module 146and the inter mode information 168 may be provided to the entropy codingmodule 160.

Either the intra signal 142 or the inter signal 144 (depending on themode) is subtracted from the source 106 at the subtraction module 146 inorder to produce a prediction residual 148. The prediction residual 148is provided to a transformation module 150. The transformation module150 may compress the prediction residual 148 to produce a transformedsignal 152 that is provided to a quantization module 154. Thequantization module 154 quantizes the transformed signal 152 to producetransformed and quantized coefficients (TQCs) 156.

The TQCs 156 are provided to an entropy coding module 160 and an inversequantization module 170. The inverse quantization module 170 performsinverse quantization on the TQCs 156 to produce an inverse quantizedsignal 172 that is provided to an inverse transformation module 174. Theinverse transformation module 174 decompresses the inverse quantizedsignal 172 to produce a decompressed signal 176 that is provided to areconstruction module 178.

The reconstruction module 178 may produce reconstructed data 180 basedon the decompressed signal 176. For example, the reconstruction module178 may reconstruct (modified) pictures. The reconstructed data 180 maybe provided to a deblocking filter 182 and to the intra predictionmodule and reconstruction buffer 140. The deblocking filter 182 mayproduce a filtered signal 184 based on the reconstructed data 180.

The filtered signal 184 may be provided to a sample adaptive offset(SAO) module 186. The SAO module 186 may produce SAO information 188that is provided to the entropy coding module 160 and an SAO signal 190that is provided to an adaptive loop filter (ALF) 192. The ALF 192produces an ALF signal 194 that is provided to the reference picturebuffer 196. The ALF signal 194 may include data from one or morepictures that may be used as reference pictures.

The entropy coding module 160 may code the TQCs 156 to produce abitstream 114. Also, the entropy coding module 160 may code the TQCs 156using Context-Adaptive Variable Length Coding (CAVLC) orContext-Adaptive Binary Arithmetic Coding (CABAC). In particular, theentropy coding module 160 may code the TQCs 156 based on one or more ofintra mode information 158, inter mode information 168 and SAOinformation 188. The bitstream 114 may include coded picture data. Theencoder often encodes a frame as a sequence of blocks, generallyreferred to as macroblocks.

Quantization, involved in video compression such as HEVC, is a lossycompression technique achieved by compressing a range of values to asingle value. The quantization parameter (QP) is a predefined scalingparameter used to perform the quantization based on both the quality ofreconstructed video and compression ratio. The block type is defined inHEVC to represent the characteristics of a given block based on theblock size and its color information. QP, resolution information andblock type may be determined before entropy coding. For example, theelectronic device 102 (e.g., the encoder 104) may determine the QP,resolution information and block type, which may be provided to theentropy coding module 160.

The entropy coding module 160 may determine the block size based on ablock of TQCs 156. For example, block size may be the number of TQCs 156along one dimension of the block of TQCs. In other words, the number ofTQCs 156 in the block of TQCs may be equal to block size squared. Forinstance, block size may be determined as the square root of the numberof TQCs 156 in the block of TQCs. Resolution may be defined as a pixelwidth by a pixel height. Resolution information may include a number ofpixels for the width of a picture, for the height of a picture or both.Block size may be defined as the number of TQCs 156 along one dimensionof a 2D block of TQCs.

In some configurations, the bitstream 114 may be transmitted to anotherelectronic device. For example, the bitstream 114 may be provided to acommunication interface, network interface, wireless transmitter, port,etc. For instance, the bitstream 114 may be transmitted to anotherelectronic device via LAN, the Internet, a cellular phone base station,etc. The bitstream 114 may additionally or alternatively be stored inmemory on the electronic device 102 or other electronic device.

FIG. 2 is a block diagram illustrating an exemplary decoder 212 on anelectronic device 202. The decoder 212 may be included for an electronicdevice 202. For example, the decoder 212 may be a HEVC decoder. Thedecoder 212 and/or one or more of the elements illustrated as includedin the decoder 212 may be implemented in hardware and/or software. Thedecoder 212 may receive a bitstream 214 (e.g., one or more encodedpictures included in the bitstream 214) for decoding. In someconfigurations, the received bitstream 214 may include received overheadinformation, such as a received slice header, received PPS, receivedbuffer description information, etc. The encoded pictures included inthe bitstream 214 may include one or more encoded reference picturesand/or one or more other encoded pictures.

Received symbols (in the one or more encoded pictures included in thebitstream 214) may be entropy decoded by an entropy decoding module 268,thereby producing a motion information signal 270 and quantized, scaledand/or transformed coefficients 272.

The motion information signal 270 may be combined with a portion of areference frame signal 298 from a frame memory 278 at a motioncompensation module 274, which may produce an inter-frame predictionsignal 282. The quantized, descaled and/or transformed coefficients 272may be inverse quantized, scaled and inverse transformed by an inversemodule 262, thereby producing a decoded residual signal 284. The decodedresidual signal 284 may be added to a prediction signal 292 to produce acombined signal 286. The prediction signal 292 may be a signal selectedfrom either the inter-frame prediction signal 282 or an intra-frameprediction signal 290 produced by an intra-frame prediction module 288.In some configurations, this signal selection may be based on (e.g.,controlled by) the bitstream 214.

The intra-frame prediction signal 290 may be predicted from previouslydecoded information from the combined signal 292 (in the current frame,for example). The combined signal 292 may also be filtered by ade-blocking filter 294. The resulting filtered signal 296 may be writtento frame memory 278. The resulting filtered signal 296 may include adecoded picture.

The frame memory 778 may include a DPB as described herein. The DPB mayinclude one or more decoded pictures that may be maintained as short orlong term reference frames. The frame memory 278 may also includeoverhead information corresponding to the decoded pictures. For example,the frame memory 278 may include slice headers, PPS information, cycleparameters, buffer description information, etc. One or more of thesepieces of information may be signaled from an encoder (e.g., encoder104). The frame memory 278 may provide a decoded picture 718.

An input picture comprising a plurality of macroblocks may bepartitioned into one or several slices. The values of the samples in thearea of the picture that a slice represents may be properly decodedwithout the use of data from other slices provided that the referencepictures used at the encoder and the decoder are the same and thatde-blocking filtering does not use information across slice boundaries.Therefore, entropy decoding and macroblock reconstruction for a slicedoes not depend on other slices. In particular, the entropy coding statemay be reset at the start of each slice. The data in other slices may bemarked as unavailable when defining neighborhood availability for bothentropy decoding and reconstruction. The slices may be entropy decodedand reconstructed in parallel. No intra prediction and motion-vectorprediction is preferably allowed across the boundary of a slice. Incontrast, de-blocking filtering may use information across sliceboundaries.

FIG. 3 illustrates an exemplary video picture 90 comprising elevenmacroblocks in the horizontal direction and nine macroblocks in thevertical direction (nine exemplary macroblocks labeled 91-99). FIG. 3illustrates three exemplary slices: a first slice denoted “SLICE #0” 89,a second slice denoted “SLICE #1” 88 and a third slice denoted “SLICE#2” 87. An H.264/AVC decoder may decode and reconstruct the three slices87, 88, 89 in parallel. Each of the slices may be transmitted in scanline order in a sequential manner. At the beginning of thedecoding/reconstruction process for each slice, entropy decoding 268 isinitialized or reset and macroblocks in other slices are marked asunavailable for both entropy decoding and macroblock reconstruction.Thus, for a macroblock, for example, the macroblock labeled 93, in“SLICE #1,” macroblocks (for example, macroblocks labeled 91 and 92) in“SLICE #0” may not be used for entropy decoding or reconstruction.Whereas, for a macroblock, for example, the macroblock labeled 95, in“SLICE #1,” other macroblocks (for example, macroblocks labeled 93 and94) in “SLICE #1” may be used for entropy decoding or reconstruction.Therefore, entropy decoding and macroblock reconstruction proceedsserially within a slice. Unless slices are defined using a flexiblemacroblock ordering (FMO), macroblocks within a slice are processed inthe order of a raster scan.

Flexible macroblock ordering defines a slice group to modify how apicture is partitioned into slices. The macroblocks in a slice group aredefined by a macroblock-to-slice-group map, which is signaled by thecontent of the picture parameter set and additional information in theslice headers. The macroblock-to-slice-group map consists of aslice-group identification number for each macroblock in the picture.The slice-group identification number specifies to which slice group theassociated macroblock belongs. Each slice group may be partitioned intoone or more slices, wherein a slice is a sequence of macroblocks withinthe same slice group that is processed in the order of a raster scanwithin the set of macroblocks of a particular slice group. Entropydecoding and macroblock reconstruction proceeds serially within a slicegroup.

FIG. 4 depicts an exemplary macroblock allocation into three slicegroups: a first slice group denoted “SLICE GROUP #0” 86, a second slicegroup denoted “SLICE GROUP #1” 85 and a third slice group denoted “SLICEGROUP #2” 84. These slice groups 84, 85, 86 may be associated with twoforeground regions and a background region, respectively, in the picture90.

A picture may be partitioned into one or more slices, wherein a slicemay be self-contained in the respect that values of the samples in thearea of the picture that the slice represents may be correctlyreconstructed without use of data from other slices, provided that thereferences pictures used are identical at the encoder and the decoder.All reconstructed macroblocks within a slice may be available in theneighborhood definition for reconstruction.

A slice may be partitioned into more than one entropy slice, wherein anentropy slice may be self-contained in the respect that the area of thepicture that the entropy slice represents may be correctly entropydecoded without the use of data from other entropy slices. The entropydecoding 268 may be reset at the decoding start of each entropy slice.The data in other entropy slices may be marked as unavailable whendefining neighborhood availability for entropy decoding.

A device configured for decoding pictures obtains or otherwise receivesa bitstream that includes a series of pictures, including a currentpicture. The device further obtains a reference picture set (RPS)parameter that may be used for the identification of other frames thatmay be used for the decoding of the current picture or picturessubsequent to the current picture in the order that pictures aresignaled in the bitstream.

A RPS provides an identification of a set of reference picturesassociated with the current frame. A RPS may identify reference picturesthat are prior to the current picture in decoding order that may be usedfor inter prediction of the current picture and/or identify referencepictures that are after the current picture in decoding order that maybe used for inter prediction of the current picture. For example, if thesystem receives frame 1, 3, 5 and 5 uses 3 for reference, and, anencoder uses frame 1 for the prediction of frame 7. Then, the RPS for 5may signal to keep both frame 3 and 1 in the frame memory 278 eventhough frame 1 is not used for reference of frame 5. In one embodiment,the RPS for 5 may be [−2 -4]. Additionally, the frame memory 278 may bereferred to the display picture buffer, or equivalently DPB.

A RPS describes one or more reference pictures that should bemaintained, at least for a limited time duration, in the decoded picturebuffer (DPB) for subsequent use. This identification of the RPS may beincluded in the slice header of each picture, together with a picture,and/or together with a group of pictures. Additionally a list of RPS maybe sent in a picture parameter set (PPS). Then slice header may refer toone of the RPS sent in the PPS to signal its use in that slice. Forexample, a RPS for a group of pictures may be signaled in a pictureparameter set (PPS). Any pictures in the DPB that are not a part of theRPS for the current frame may be marked as “unused for reference.”

A DPB may be used to store reconstructed (e.g., decoded) pictures at thedecoder. These stored pictures may then be used, for example, in aninter-prediction technique. Also, a picture in the DPB may be associatedwith a picture order count (POC). The POC may be a variable that isassociated with each encoded picture and that has a value that increaseswith increasing picture position in an output order. In other words, thePOC may be used by the decoder to deliver the pictures in the correctorder for display. The POC may also be used for identification ofreference pictures during construction of a reference picture list andidentification of decoded reference pictures. Furthermore, the POC maybe used for identification of pictures that are lost during transmissionfrom an encoder to a decoder.

Referring to FIG. 5, one example of a set of frames 300 provided from anencoder to a decoder is illustrated. Each of the frames may have anassociated POC 310. As illustrated, the POC may increment from a minusnumber though a large positive number. In some embodiments, the POC mayonly increment from zero through a larger positive number. The POC istypically incremented by one for each frame, but in some cases one ormore POC are skipped or otherwise omitted. For example, the POC for aset of frames in the encoder may be, 0, 1, 2, 3, 4, 5, etc. For example,the POC for the same or another set of frames in the encoder may be, 0,1, 2, 4, 5, etc., with POC 3 being skipped or otherwise omitted.

As the POC becomes sufficiently large, a significant number of bitswould be necessary to identify each frame using the POC. The encoder mayreduce the number of bits used to identify a particular POC by using aselected number of least significant bits (LSB) of the POC to identifyeach frame, such as 4. Since the reference frames used for decoding thecurrent frame are often temporally located proximate to the currentframe, this identification technique is suitable and results in areduction in the computational complexity of the system and an overallreduction in the bit rate of the video. The number of LSB to use toidentify the pictures may be signaled in the bit stream to the decoder.

As illustrated, with LSB being 4 bits, the LSB index repeats every 16values (2{circumflex over ( )}4) when the selected number of LSB of thePOC is 4. Thus, frame 0 has a LSB having a value of 0, frame 1 has a LSBhaving a value of 1, . . . , frame 14 has a LSB having a value of 14,frame 15 has a LSB having a value of 15. However, frame 16 again has aLSB having a value of 0, frame 17 again has a LSB having a value of 1,and frame 20 has a LSB having a value of 4. The LSB identifier(generally also referred to as the LSB of the POC or, equivalently, POCLSB) may have the characteristic of LSB=POC % 16, where % is theremainder after dividing by 16 (2{circumflex over ( )} number of leastsignificant bits which in this case is 4). Similarly, if the selectednumber of LSBs to identify a POC is N bits, the LSB identifier may havethe characteristic of LSB=POC % (2{circumflex over ( )}N) where2{circumflex over ( )}N denotes 2 raised to the power of N. Rather thanincluding the POC the bitstream to identify frames, the encoderpreferably provides the LSB index (generally also referred to as the LSBof the POC or, equivalently, POC LSB), in the bitstream to the decoder.

The reference frames used for inter prediction of a current frame, orframes subsequent to the current frame, may be identified with an RPSusing either relative (e.g., delta) referencing (using a deltaPOC and acurrentPOC, for example) or absolute referencing (using the POC, forexample). For example, the frame identified by POC 5 310 and signaled tothe decoder as LSB 5 320 in the bitstream may have an associated RPS 330of [−5, −2, −1]. The meaning of the RPS values is described later.

Referring to FIG. 6, illustrating a portion of FIG. 5, the RPS of [−5,−2, −1] refers to frames that include the fifth previous frame 320,second previous frame 321, and first previous frame 322. This in turnrefers to the POC values of 0, 3, and 4, respectively as illustrated inFIG. 6. Typically, the RPS refers to the difference in between the POCvalue of the current frame and the POC value of the previous frame. Forexample, the RPS of [−5, −2, −1] for a current frame having a POC valueof 5, refers to frames having POC values of 5 minus 5=0; 5 minus 2=3;and 5 minus 1=4. Please note that although not shown in the example herethe RPS can also include frames in the future. These will be indicatedwith positive delta PCO values in RPS.

In the case that the POC values are not sequential, such as in the casethat one or more POC values are skipped or otherwise omitted in parts ofthe bitstream, the difference between the POC value of the current frameand POC value of the previous frame may be different than the number offrames output between the previous frame and current frame such asillustrated in FIG. 7. The RPS may be signaled in the bitstream in anysuitable manner, such as provided together with the frame or providedtogether with a set of frames.

Referring to FIG. 8, another technique for signaling the referenceframes is to use an absolute reference, generally referred to as a longterm picture, in the RPS associated with a frame. The decoding process,such as the motion vector prediction technique, may be differentdepending if the reference frame is signaled using an absolute referenceor a relative reference. The absolute reference (referred to as LT forconvenience) refers to a particular LSB count value associated with areference frame, such as a previous or subsequent frame. For example,the absolute reference of LT=3 (LT3) would refer to a reference framehaving a POC LSB value of 3. Accordingly, a RPS of [LT3, −5] would referto a reference frame having POC LSB value of 3 and a reference framewith a POC equal to the POC of the current frame minus 5. In FIG. 8,this corresponds to the reference frame with POC equal to 3 444 and thereference frame with POC equal to 0 320. Typically, the LT3 refers tothe first previous frame relative to the current frame having a POC LSBvalue of 3. In one embodiment, LT3 refers to the first previous framerelative to the current frame in output order having a POC LSB value of3. In a second embodiment, LT3 refers to the first previous framerelative to the current frame in transmission order having a POC LSBvalue of 3. While such a system is suitable for many bit streams, it isnot sufficiently robust to select a frame with a LSB count value of 3that is different than the immediately previous frame having a LSB countvalue of 3.

Referring to FIG. 9, for example, if the encoder was encoding frame 31(POC=31) and the system signals the use of the long term picture withPOC LSB=0 (LT0), then this would refer A to frame 16 (POC=16) since itis the first previous frame with LSB=0. However, the encoder may desireto signal the long term picture frame 0, which likewise has a LSB countvalue of 0, but this may not be accomplished with such a first previousreferencing scheme. To overcome this limitation, one technique is toincrease the number of least significant bits used to signal the longterm frame LSB, or POC LSB. While such an increase in the number ofleast significant bits is possible, it results in substantial additionalbits being added to the bitstream.

A more preferred technique that results in fewer additional bits beingadded to the bitstream is to signal a different long term picture thanthe first immediately preceding frame with a corresponding POC LSBvalue. For example, the system could indicate the RPS of the currentframe having an absolute reference as [LT0|2] where the 0 refers to thePOC LSB count value and 2 refers to which of the previous frames withPOC LSB count value equal to 0 s to use, which in this case would be thesecond previous POC LSB value of 0 (e.g., frame 0 in FIG. 9). If nosecond reference is included then the system may default to theimmediately preceding frame with a POC LSB=0 [LT0] (e.g., frame 16 inFIG. 9).

In many cases, the frequency of occurrence of the desire to signal aframe that is not the first immediately preceding frame with thecorresponding POC LSB value using absolute referencing will berelatively infrequent. To further reduce the overall bit rate indicatingwhich frame to use, while permitting the capability of signaling adifferent frame than the first immediately preceding frame with thecorresponding POC LSB value using absolute referencing, the system mayuse a duplication technique. For example, the RPS may be structured asfollows, [LT0, LT0|3]. The duplication of the LT0 within the same RPSsignals the decoder to use a different frame having a POC LSB value of0, which in this case would be the third previous occurrence of the POCLSB value of 0. In general, aside from the potential that a particularPOC LSB value would not be included in a particular cycle of POC LSBvalues, the desired POC LSB value will correspond to a frame of theindicated previous occurrence.

Referring to FIG. 10, the duplication technique may be indicated asfollows. The RPS includes a signal of a long term picture having a POCLSB value 400 (e.g., [LT3]). The same RPS includes another signal of along term picture having the same POC LSB value 410 (e.g., [LT3, LT3].The same RPS includes another signal of the second long term picturehaving the same LSB count value 410 indicating the location of thedesired frame 420 [LT3, LT3|2].

The signaling of the location of the desired frame may be performed inany suitable manner. Referring to FIG. 11A and FIG. 11B for example, thelocation may be a number of previous cycles of the POC LSB values forthe desired frame relative to the current frame, such as the thirdprevious cycle. Referring to FIG. 12 for example, the location may bebased upon an absolute number of frames offset from the current frame.Referring to FIG. 13A and FIG. 13B for example, the location may bebased upon a number of previous cycles of the POC LSB values relative tothe first immediately preceding frame with the desired POC LSB value.Referring to FIG. 14 for example, the location may be based upon anabsolute number of frames offset relative to the first immediatelypreceding frame with the desired POC LSB value.

One exemplary implementation of such a technique may use the followingsyntax.

De- slice_segment_header( ) { scriptor   first_slice_segment_in_pic_flagu(1)   if( RapPicFlag )     no_output_of_prior_pics_flag u(1)  slice_pic_parameter_set_id ue(v)   if(!first_slice_segment_in_pic_flag ) {    if(dependent_slice_segments_enabled_flag )      dependent_slice_segment_flag u(1)     slice_segment_address u(v)  }   if( !dependent_slice_segment_flag ) {     for ( i = 0; i <num_extra_slice_header_bits;     i++ )      slice_reserved_undetermined_flag[ i ] u(1)     slice_type ue(v)    if( output_flag_present_flag )       pic_output_flag u(1)     if(separate_colour_plane_flag = = 1 )       colour_plane_id u(2)     if(!IdrPicFlag ) {       pic_order_cnt_lsb u(v)      short_term_ref_pic_set_sps_flag u(1)       if(!short_term_ref_pic_set_sps_flag )   short_term_ref_pic_set(  num_short_term_ref_pic_sets )       else if(num_short_term_ref_pic_sets > 1 )         short_term_ref_pic_set_idxu(v)       if( long_term_ref_pics_present_flag ) {         if(num_long_term_ref_pics_sps > 0 )           num_long_term_sps ue(v)        num_long_term_pics ue(v)         for( i =0; i < num_long_term_sps + num_long_term_pics; i++ ) {           if( i <num_long_term_sps && num_long_term_ref_pics_sps > 1)            lt_idx_sps[ i ] u(v)           else {            poc_lsb_lt[ i ] u(v)   used_by_curr_pic_lt_flag[ i ] u(1)          }           delta_poc_msb_present_flag[ i ] u(1)           if(delta_poc_msb_present_flag[ i ] )             delta_poc_msb_cycle_lt[ i] ue(v)         }       }

first_slice_segment_in_pic_flag equal to 1 specifies that the slicesegment is the first slice segment of the picture in decoding order.first_slice_segment_in_pic_flag equal to 0 specifies that the slicesegment is not the first slice segment of the picture in decoding order.

no_output_of_prior_pics_flag specifies how the previously-decodedpictures in the decoded picture buffer are treated after decoding of anIDR or a BLA picture. When the current picture is a CRA picture, or thecurrent picture is an IDR or BLA picture that is the first picture inthe bitstream, the value of no_output_of_prior_pics_flag has no effecton the decoding process. When the current picture is an IDR or BLApicture that is not the first picture in the bitstream and the value ofpic_width_in_luma_samples or pic_height_in_luma_samples orsps_max_dec_pic_buffering[ HighestTid] derived from the active sequenceparameter set is different from the value of pic_width_in_luma_samplesor pic height in luma samples or sps_max_dec_pic_buffering[HighestTid]derived from the sequence parameter set active for the precedingpicture, no_output_of_prior_pics_flag equal to 1 may (but should not) beinferred by the decoder, regardless of the actual value ofno_output_of_prior_pics_flag. Where HighestTid refers to the highesttemporal Id value.

slice_pic_parameter_set_id specifies the value of pps_pic_parameter_setfor the picture parameter set in use. The value ofslice_pic_parameter_set_id shall be in the range of 0 to 63, inclusive.

dependent_slice_segment_flag equal to 1 specifies that the value of eachslice segment header syntax element that is not present is inferred tobe equal to the value of the corresponding slice segment header syntaxelement in the slice header. When not present, the value ofdependent_slice_segment_flag is inferred to be equal to 0.

The variable SliceAddrRS is derived as follows. Ifdependent_slice_segment_flag is equal to 0, SliceAddrRS is set equal toslice_segment_address. Otherwise, SliceAddrRS is set equal toSliceAddrRS of the preceding slice segment containing the coding treeblock for which the coding tree block address isctbAddrTStoRS[ctbAddrRStoTS[slice_segment_address]−1].

slice_segment_address specifies the address of the first coding treeblock in the slice segment, in coding tree block raster scan of apicture. The length of the slice_segment_address syntax element isCeil(Log2(PicSizeInCtbsY)) bits. The value of slice_segment_addressshall be in the range of 1 to PicSizeInCtbsY−1, inclusive and the valueof slice_segment_address shall not be equal to the value ofslice_segment_address of any other coded slice segment NAL unit of thesame coded picture. When slice_segment_address is not present, it isinferred to be equal to 0.

The variable CtbAddrInRS, specifying a coding tree block address incoding tree block raster scan of a picture, is set equal toslice_segment_address. The variable CtbAddrInTS, specifying a codingtree block address in tile scan, is set equal toCtbAddrRStoTS[CtbAddrInRS]. The variable CuQpDelta, specifying thedifference between a luma quantization parameter for the coding unitcontaining cu_qp_delta_abs and its prediction, is set equal to 0.

slice_reserved_undetermined_flag[i] has semantics and values that arereserved for future specification by ITU-T|ISO/IEC. Decoders shallignore the presence and value of slice_reserved_undetermined_flag[i].

slice_type specifies the coding type of the slice according to thefollowing table.

Table - Name association to slice_typeslice_type Name of slice_type 0 B(B slice) 1 P (P slice) 2 I (I slice)

When nal_unit_type has a value in the range of 16 to 23, inclusive (RAPpicture), slice_type shall be equal to 2.

When sps_max_dec_pic_buffering[TemporalId] is equal to 0, slice_typeshall be equal to 2.

pic_output_flag affects the decoded picture output and removalprocesses. When pic_output_flag is not present, it is inferred to beequal to 1.

colour_plane_id specifies the colour plane associated with the currentslice RBSP when separate_colour_plane_flag is equal to 1. The value ofcolour_plane_id shall be in the range of 0 to 2, inclusive.colour_plane_id equal to 0, 1, and 2 correspond to the Y, Cb, and Crplanes, respectively.

pic_order_cnt_lsb specifies the picture order count moduloMaxPicOrderCntLsb for the current picture. The length of thepic_order_cnt_lsb syntax element is log2_max_pic_order_cnt_lsb_minus4+4bits. The value of the pic_order_cnt_lsb shall be in the range of 0 toMaxPicOrderCntLsb−1, inclusive. When pic_order_cnt_lsb is not present,pic_order_cnt_lsb is inferred to be equal to 0 in most cases.

short_term_ref_pic_set_sps_flag equal to 1 specifies that the short-termreference picture set of the current picture is created using syntaxelements in the active sequence parameter set.short_term_ref_pic_set_sps_flag equal to 0 specifies that the short-termreference picture set of the current picture is created using syntaxelements in the short_term_ref_pic_set() syntax structure in the sliceheader.

short_term_ref_pic_set_idx specifies the index to the list of theshort-term reference picture sets specified in the active sequenceparameter set that is used for creation of the reference picture set ofthe current picture. The syntax element short_term_ref_pic_set_idx isrepresented by Ceil(Log2(num_short_term_ref_pic_sets)) bits. When notpresent, the value of short_term_ref_pic_set_idx is inferred to be equalto 0. The value of short_term_ref_pic_set_idx shall be in the range of 0to num_short_term_ref_pic_sets−1, inclusive.

The variable StRpsIdx is derived as follows: Ifshort_term_ref_pic_set_sps_flag is equal to 1, StRpsIdx is set equal toshort_term_ref_pic_set_idx. Otherwise, StRpsIdx is set equal tonum_short_term_ref_pic_sets.

num_long_term_sps specifies the number of candidate long-term referencepictures specified in the active sequence parameter set that areincluded in the long-term reference picture set of the current picture.The value of num_long_term_sps shall be in the range of 0 toMin(num_long_term_ref_pics_sps,sps_max_dec_pic_buffering[sps_max_sub_layers_minus1]−NumNegativePics[StRpsIdx]−NumPositivePics[StRpsIdx]),inclusive. When not present, the value of num_long_term_sps is inferredto be equal to 0.

num_long_term_pics specifies the number of long-term reference picturesspecified in the slice header, which are included in the long-termreference picture set of the current picture. The value ofnum_long_term_pics shall be in the range of 0 tosps_max_dec_pic_buffering[sps_max_sub_layers_minus1]−NumNegativePics[StRpsIdx]−NumPositivePics[StRpsIdx]−num_long_term_sps,inclusive. When not present, the value of num long term_pics is inferredto be equal to 0.

lt_idx_sps[i] specifies an index into the list of candidate long-termreference pictures specified in the active sequence parameter set foridentification of the picture that is included in the long-termreference picture set of the current picture. The number of bits used torepresent lt_idx_sps[i] is equal toCeil(Log2(num_long_term_ref_pics_sps)). When not present, the value oflt_idx_sps[i] is inferred to be equal to 0. The value of lt_idx_sps[i]shall be in the range of 0 to num_long_term_ref_pics_sps−1, inclusive.

poc_lsb_lt[i] specifies the value of the picture order count moduloMaxPicOrderCntLsb of the i-th long-term reference picture that isincluded in the long-term reference picture set of the current picture.The length of the poc_lsb_lt[i] syntax element islog2_max_pic_order_cnt_lsb_minus4+4 bits.

used_by_curr_pic_lt_flag[i] equal to 0 specifies that the i-th long-termreference picture included in the long-term reference picture set of thecurrent picture is not used for reference by the current picture.

The variables PocLsbLt[i] and UsedByCurrPicLt[i] are derived as follows.If i is less than num_long_term_sps, PocLsbLt[i] is set equal tolt_ref_pic_poc_lsb_sps[lt_idx_sps[i]] and UsedByCurrPicLt[i] is setequal to used_by_curr_pic_lt_sps_flag[lt_idx_sps[i]]. Otherwise,PocLsbLt[i] is set equal to poc_lsb_lt[i] and UsedByCurrPicLt[i] is setequal to used_by_curr_pic_lt_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present.delta_poc_msb_present_flag[i] shall be equal to 1 when there is morethan one reference picture in the decoded picture buffer with pictureorder count modulo MaxPicOrderCntLsb equal to PocLsbLt[i].

delta_poc_msb_cycle_lt[i] is used to determine the value of the mostsignificant bits of the picture order count value of the i-th long-termreference picture that is included in the long-term reference pictureset of the current picture. When delta_poc_msb_cycle_lt[i] is notpresent, it is inferred to be equal to 0.

The variable DeltaPocMSBCycleLt[i] is derived as follows:

if(i==0||i==num_long_term_sps)

DeltaPocMSBCycleLt[i]=delta_poc_msb_cycle_lt[i] else

DeltaPocMSBCycleLt[i]=delta_poc_msb_cycle_lt[i]+DeltaPocMSBCycleLt[i−1]

For long term reference picture set the decoding process may be done asfollows:

This process is invoked once per picture, after decoding of a sliceheader but prior to the decoding of any coding unit and prior to thedecoding process for reference picture list construction for the slice.This process may result in one or more reference pictures in the DPBbeing marked as “unused for reference” or “used for long-termreference”.

Note that the reference picture set is an absolute description of thereference pictures used in the decoding process of the current andfuture coded pictures. The reference picture set signalling is explicitin the sense that all reference pictures included in the referencepicture set are listed explicitly.

A picture can be marked as “unused for reference”, “used for short-termreference”, or “used for long-term reference”, but only one among thesethree. Assigning one of these markings to a picture implicitly removesanother of these markings when applicable. When a picture is referred toas being marked as “used for reference”, this collectively refers to thepicture being marked as “used for short-term reference” or “used forlong-term reference” (but not both).

When the current picture is the first picture in the bitstream, the DPBis initialized to be an empty set of pictures.

When the current picture is an IDR picture or a BLA picture, allreference pictures currently in the DPB (if any) are marked as “unusedfor reference”.

Short-term reference pictures are identified by their PicOrderCntValvalues. Long-term reference pictures are identified either by theirPicOrderCntVal values or their pic_order_cnt_lsb values.

Five lists of picture order count values are constructed to derive thereference picture set; PocStCurrBefore, PocStCurrAfter, PocStFoll,PocLtCurr, and PocLtFoll with NumPocStCurrBefore, NumPocStCurrAfter,NumPocStFoll, NumPocLtCurr, and NumPocLtFoll number of elements,respectively.

If the current picture is an IDR picture, PocStCurrBefore,PocStCurrAfter, PocStFoll, PocLtCurr, and PocLtFoll are all set toempty, and NumPocStCurrBefore, NumPocStCurrAfter, NumPocStFoll,NumPocLtCurr, and NumPocLtFoll are all set to 0.

Otherwise, the following applies for derivation of the five lists ofpicture order count values and the numbers of entries.

 for( i = 0, j = 0, k = 0; i < NumNegativePics[ StRpsIdx ] ; i++)  if(UsedByCurrPicS0[ StRpsIdx ][ i ] )   PocStCurrBefore[ j++ ] =PicOrderCntVal + DeltaPocS0[ StRpsIdx ][ i ]  else   PocStFoll[ k++ ] =PicOrderCntVal + DeltaPocS0[ StRpsIdx ][ i ] NumPocStCurrBefore = j for(i = 0, j = 0; i < NumPositivePics[ StRpsIdx ]; i++ )  if(UsedByCurrPicS1[ StRpsIdx ][ i ] )   PocStCurrAfter[ j++ ] =PicOrderCntVal + DeltaPocS1[ StRpsIdx ][ i ]  else   PocStFoll[ k++ ] =PicOrderCntVal + DeltaPocS1[ StRpsIdx ][ i ] NumPocStCurrAfter = jNumPocStFoll = k for( i = 0, j = 0, k = 0; i < num_long_term_sps +num_long_term_pics; i++ ) {  pocLt = PocLsbLt[ i ]  if(delta_poc_msb_present_flag[ i ] )  pocLt += PicOrderCntVal − DeltaPocMSBCycleLt[ i ] * MaxPicOrderCntLsb − pic_order_cnt_lsb  if(UsedByCurrPicLt[ i ] ) {   PocLtCurr[ j ] = pocLt  CurrDeltaPocMsbPresentFlag[ j++ ] = delta_poc_msb_present_flag[ i ]  }else {   PocLtFoll[ k ] = pocLt   FollDeltaPocMsbPresentFlag[ k++ ] =delta_poc_msb_present_flag[ i ]  } } NumPocLtCurr = j NumPocLtFoll = kwhere PicOrderCntVal is the picture order count of the current picture.

In alternative embodiments following semantics may be defined fordelta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present.delta_poc_msb_present_flag[i] shall be equal to 1 when there is morethan one reference picture in the decoded picture buffer with pictureorder count modulo MaxPicOrderCntLsb equal to PocLsbLt[i]. Oncedelta_poc_msb_present_flag[i] is set equal to 1 for a current picturebased on the above condition then delta_poc_msb_present_flag[i] shall beset to 1 for all subsequent pictures in decoding order until andincluding the first picture in decoding order which has TemporalId valueof 0 and has a NAL unit type as one of the following, TRAIL_R, TS_AR,STSA_R.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present.delta_poc_msb_present_flag[i] shall be equal to 1 when there is morethan one reference picture in the decoded picture buffer with pictureorder count modulo MaxPicOrderCntLsb equal to PocLsbLt[i]. Oncedelta_poc_msb_present_flag[i] is set equal to 1 for a current picturebased on the above condition then delta_poc_msb_present_flag[i] shall beset to 1 for all subsequent pictures in decoding order until andincluding the first picture in decoding order which has TemporalId valueof 0 and has a NAL unit type as one of the following, TRAIL_R.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present.delta_poc_msb_present_flag[i] shall be equal to 1 when there is morethan one reference picture in the decoded picture buffer with pictureorder count modulo MaxPicOrderCntLsb equal to PocLsbLt[i]. Oncedelta_poc_msb_present_flag[i] is set equal to 1 for a current picturebased on the above condition then delta_poc_msb_present_flag[i] shall beset to 1 for all subsequent pictures in decoding order until andincluding the first picture in decoding order which has TemporlId valueof 0 and has a NAL unit type as one of the following, TRAIL_R, TS_AR,STSA_R, RADL_R, RASL_R.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present.delta_poc_msb_present_flag[i] shall be equal to 1 when there is morethan one reference picture in the decoded picture buffer with pictureorder count modulo MaxPicOrderCntLsb equal to PocLsbLt[i]. Oncedelta_poc_msb_present_flag[i] is set equal to 1 for a current picturebased on the above condition then delta_poc_msb_present_flag[i] shall beset to 1 for all subsequent pictures in decoding order until andincluding the first picture in decoding order which has TemporlId valueof 0.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present.delta_poc_msb_present_flag[i] shall be equal to 1 when there is morethan one reference picture in the decoded picture buffer with pictureorder count modulo MaxPicOrderCntLsb equal to PocLsbLt[i]. Oncedelta_poc_msb_present_flag[i] is set equal to 1 for a current picturebased on the above condition then delta_poc_msb_present_flag[i] shall beset to 1 for all subsequent pictures in decoding order which have eitherTemporlId value >0 or have a NAL unit type as one of the following,TRAIL_N, TSA_N, STSA_N, RAD_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12, orRSV_VCL_N14.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present.delta_poc_msb_present_flag[i] shall be equal to 1 when there is morethan one reference picture in the decoded picture buffer with pictureorder count modulo MaxPicOrderCntLsb equal to PocLsbLt[i]. Oncedelta_poc_msb_present_flag[i] is set equal to 1 for a current picturebased on the above condition then delta_poc_msb_present_flag[i] shall beset to 1 for all subsequent pictures in decoding order until andincluding the first picture in decoding order which has temporal Idvalue equal to 0 and which is used as a reference picture or is notindividually discardable.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present. Whenthere is more than one reference picture in the decoded picture bufferwith picture order count modulo MaxPicOrderCntLsb equal to PocLsbLt[i],delta_poc_msb_present_flag[i] shall be equal to 1 for the currentpicture and for all subsequent pictures in decoding order following thecurrent picture until and including the first picture in decoding orderfollowing the current picture which has TemporlId value of 0 and has aNAL unit type as one of the following, TRAIL_R.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present. Whenthere is more than one reference picture in the decoded picture bufferwith picture order count modulo MaxPicOrderCntLsb equal to PocLsbLt[i],delta_poc_msb_present_flag[i] shall be equal to 1 for the currentpicture and for all subsequent pictures in decoding order following thecurrent picture until and including the first picture in decoding orderfollowing the current picture which has TemporlId value of 0 and has aNAL unit type as one of the following, TRAIL_R, TSA_R, STSA_R.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present. Whenthere is more than one reference picture in the decoded picture bufferwith picture order count modulo MaxPicOrderCntLsb equal to PocLsbLt[i],delta_poc_msb_present_flag[i] shall be equal to 1 for the currentpicture and for all subsequent pictures in decoding order following thecurrent picture until and including the first picture in decoding orderfollowing the current picture which has TemporalId value of 0 and has aNAL unit type as one of the following, TRAIL_R, TSA_R, STSA_R, RADL_R,RASL_R.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present. Whenthere is more than one reference picture in the decoded picture bufferwith picture order count modulo MaxPicOrderCntLsb equal to PocLsbLt[i],delta_poc_msb_present_flag[i] shall be equal to 1 for the currentpicture and for all subsequent pictures in decoding order following thecurrent picture which have either TemporalId value >0 or have a NAL unittype as one of the following, TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N,RSV_VCL_N10, RSV_VCL_N12, or RSV_VCL_N14.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present. Whenthere is more than one reference picture in the decoded picture bufferwith picture order count modulo MaxPicOrderCntLsb equal to PocLsbLt[i],delta_poc_msb_present_flag[i] shall be equal to 1 for the currentpicture and for all subsequent pictures in decoding order following thecurrent picture until and including the first picture in decoding orderfollowing the current picture which has TemporalId value of 0.

In a further alternative embodiment following semantics may be definedfor delta_poc_msb_present_flag[i].

delta_poc_msb_present_flag[i] equal to 1 specifies thatdelta_poc_msb_cycle_lt[i] is present. delta_poc_msb_present_flag[i]equal to 0 specifies that delta_poc_msb_cycle_lt[i] is not present. Whenthere is more than one reference picture in the decoded picture bufferwith picture order count modulo MaxPicOrderCntLsb equal to PocLsbLt[i],delta_poc_msb_present_flag[i] shall be equal to 1 for the currentpicture and for all subsequent pictures in decoding order following thecurrent picture until and including the first picture in decoding orderfollowing the current picture which has TemporalId value of 0 and whichis used as a reference picture or is not individually discardable.

Where a nal_unit_type is defined with the following semantics.

nal_unit_type specifies the type of RBSP data structure contained in theNAL unit as specified in the following table y.

TABLE Y NAL unit type codes and NAL unit type classes NAL unit Contentof NAL unit and RBSP syntax type nal_unit_type Name of nal_unit_typestructure class  0, TRAIL_N, Coded slice segment of a non-TSA, VCL  1TRAIL_R non-STSA trailing picture slice_segment_layer_rbsp( )  2, TSA_N,Coded slice segment of a TSA picture VCL  3 TSA_Rslice_segment_layer_rbsp( )  4, STSA_N, Coded slice segment of an STSAVCL  5 STSA_R picture slice_layer_rbsp( )  6, RADL_N, Coded slicesegment of a RADL VCL  7 RADL_R picture slice_layer_rbsp( )  8, RASL_N,Coded slice segment of a RASL VCL  9 RASL_R, picture slice_layer_rbsp( )10, RSV_VCL_N10 Reserved // reserved non-RAP non- VCL 12, RSV_VCL_N12reference VCL NAL unit types 14 RSV_VCL_N14 11, RSV_VCL_R11 Reserved //reserved non-RAP VCL 13, RSV_VCL_R13 reference VCL NAL unit types 15RSV_VCL_R15 16, BLA_W_LP Coded slice segment of a BLA picture VCL 17,BLA_W_RADL slice_segment_layer_rbsp( ) 18 BLA_N_LP 19, IDR_W_RADL Codedslice segment of an IDR picture VCL 20 IDR_N_LPslice_segment_layer_rbsp( ) 21 CRA_NUT Coded slice segment of a CRApicture VCL slice_segment_layer_rbsp( ) 22, RSV_RAP_VCL22..RSV_RAP_VCL23Reserved // reserved RAP VCL NAL VCL 23 unit types 24 . . . 31RSV_VCL24..RSV_VCL31 Reserved // reserved non-RAP VCL VCL NAL unit types32 VPS_NUT Video parameter set non- video_parameter_set_rbsp( ) VCL 33SPS_NUT Sequence parameter set non- seq_parameter_set_rbsp( ) VCL 34PPS_NUT Picture parameter set non- pic_parameter_set_rbsp( ) VCL 35AUD_NUT Access unit delimiter non- access_unit_delimiter_rbsp( ) VCL 36EOS_NUT End of sequence non- end_of_seq_rbsp( ) VCL 37 EOB_NUT End ofbitsteam non- end_of_bitstream_rbsp( ) VCL 38 FD_NUT Filler data non-filler_data_rbsp( ) VCL 39, PREFIX_SEI_NUT Supplemental enhancement non-40 SUFFIX_SEI_NUT information (SEI) VCL sei_rbsp( ) 41 . . . 47RSV_NVCL41..RSV_NVCL47 Reserved non- VCL 48 . . . 63 UNSPEC48..UNSPEC63Unspecified non- VCL

Where following definitions apply.

access unit: A set of NAL units that are associated with each otheraccording to a specified classification rule, are consecutive indecoding order, and contain exactly one coded picture.

In addition to containing the coded slice segment NAL units of the codedpicture, an access unit may also contain other NAL units not containingslice segments of the coded picture. The decoding of an access unitalways results in a decoded picture.

associated non-VCL NAL unit: A non-VCL NAL unit for which a particularVCL NAL unit is the associated VCL NAL unit of the non-VCL NAL unit.

associated RAP picture: The previous RAP picture in decoding order (ifpresent).

associated VCL NAL unit: For non-VCL NAL units with nal_unit_type equalto EOS_NUT, EOB_NUT, FD_NUT, or SUFFIX_SEI_NUT, or in the range ofRSV_NVCL45..RSV_NVCL47, or in the range of UNSPEC48..UNSPEC63, thepreceding VCL NAL unit in decoding order; and for non-VCL NAL units withnal_unit_type equal to other values, the next VCL NAL unit in decodingorder.

broken link access (BLA) access unit: An access unit in which the codedpicture is a BLA picture.

broken link access (BLA) picture: A RAP picture for which each slicesegment has nal_unit_type equal to BLA_W_LP, BLA_W_RADL or BLA_N_LP.

A BLA picture contains only I slices, and may be the first picture inthe bitstream in decoding order, or may appear later in the bitstream.Each BLA picture begins a new coded video sequence, and has the sameeffect on the decoding process as an IDR picture. However, a BLA picturecontains syntax elements that specify a non-empty reference picture set.When a BLA picture has nal_unit_type equal to BLA_W_LP, it may haveassociated RASL pictures, which are not output by the decoder and maynot be decodable, as they may contain references to pictures that arenot present in the bitstream. When a BLA picture has nal_unit_type equalto BLA_W_LP, it may also have associated RADL pictures, which arespecified to be decoded. When a BLA picture has nal_unit_type equal toBLA_W_RADL, it does not have associated RASL pictures but may haveassociated RADL pictures, which are specified to be decoded. When a BLApicture has nal_unit_type equal to BLA_N_LP, it does not have anyassociated leading pictures.

clean random access (CRA) access unit: An access unit in which the codedpicture is a CRA picture.

clean random access (CRA) picture: A RAP picture for which each slicesegment has nal_unit_type equal to CRA_NUT.

A CRA picture contains only I slices, and may be the first picture inthe bitstream in decoding order, or may appear later in the bitstream. ACRA picture may have associated RADL or RASL pictures. When a CRApicture is the first picture in the bitstream in decoding order, the CRApicture is the first picture of a coded video sequence in decodingorder, and any associated RASL pictures are not output by the decoderand may not be decodable, as they may contain references to picturesthat are not present in the bitstream.

filler data NAL units: NAL units with nal_unit_type equal to FD_NUT.

instantaneous decoding refresh (IDR) access unit: An access unit inwhich the coded picture is an IDR picture.

instantaneous decoding refresh (IDR) picture: A RAP picture for whicheach slice segment has nal_unit_type equal to IDR_W_RADL or IDR_N_LP.

An IDR picture contains only I slices, and may be the first picture inthe bitstream in decoding order, or may appear later in the bitstream.Each IDR picture is the first picture of a coded video sequence indecoding order. When an IDR picture has nal_unit_type equal toIDR_W_RADL, it may have associated RADL pictures. When an IDR picturehas nal_unit_type equal to IDR_N_LP, it does not have any associatedleading pictures. An IDR picture does not have associated RASL pictures.

long-term reference picture: A picture that is marked as “used forlong-term reference”.

long-term reference picture set: The two reference picture set liststhat may contain long-term reference pictures.

network abstraction layer (NAL) unit: A syntax structure containing anindication of the type of data to follow and bytes containing that datain the form of an RBSP interspersed as necessary with emulationprevention bytes.

network abstraction layer (NAL) unit stream: A sequence of NAL units.

non-reference picture: A picture that is marked as “unused forreference”.

A non-reference picture contains samples that cannot be used for interprediction in the decoding process of subsequent pictures in decodingorder.

picture parameter set (PPS): A syntax structure containing syntaxelements that apply to zero or more entire coded pictures as determinedby a syntax element found in each slice segment header.

prefix SEI NAL unit: An SEI NAL unit that has nal_unit_type equal toPREFIX_SEI_NUT.

random access decodable leading (RADL) access unit: An access unit inwhich the coded picture is a RADL picture.

random access decodable leading (RADL) picture: A coded picture forwhich each slice segment has nal_unit_type equal to RADL_NUT.

All RADL pictures are leading pictures. RADL pictures are not used asreference pictures for the decoding process of trailing pictures of thesame associated RAP picture. When present, all RADL pictures precede, indecoding order, all trailing pictures of the same associated RAPpicture.

random access point (RAP) access unit: An access unit in which the codedpicture is a RAP picture.

random access point (RAP) picture: A coded picture for which each slicesegment has nal_unit_type in the range of 7 to 12, inclusive.

A RAP picture contains only I slices, and may be a BLA picture, a CRApicture or an IDR picture. The first picture in the bitstream must be aRAP picture. Provided the necessary parameter sets are available whenthey need to be activated, the RAP picture and all subsequent non-RASLpictures in decoding order can be correctly decoded without performingthe decoding process of any pictures that precede the RAP picture indecoding order. There may be pictures in a bitstream that contain only Islices that are not RAP pictures.

random access skipped leading (RASL) access unit: An access unit inwhich the coded picture is a RASL picture.

random access skipped leading (RASL) picture: A coded picture for whicheach slice segment has nal_unit_type equal to RASL_NUT.

All RASL pictures are leading pictures of an associated BLA or CRApicture. When the associated RAP picture is a BLA picture or is thefirst coded picture in the bitstream, the RASL picture is not output andmay not be correctly decodable, as the RASL picture may containreferences to pictures that are not present in the bitstream. RASLpictures are not used as reference pictures for the decoding process ofnon-RASL pictures. When present, all RASL pictures precede, in decodingorder, all trailing pictures of the same associated RAP picture.

raw byte sequence payload (RBSP): A syntax structure containing aninteger number of bytes that is encapsulated in a NAL unit. An RBSP iseither empty or has the form of a string of data bits containing syntaxelements followed by an RBSP stop bit and followed by zero or moresubsequent bits equal to 0.

raw byte sequence payload (RBSP) stop bit: A bit equal to 1 presentwithin a raw byte sequence payload (RBSP) after a string of data bits.The location of the end of the string of data bits within an RBSP can beidentified by searching from the end of the RBSP for the RBSP stop bit,which is the last non-zero bit in the RBSP.

reference picture: A picture that is a short-term reference picture or along-term reference picture.

A reference picture contains samples that may be used for interprediction in the decoding process of subsequent pictures in decodingorder.

sequence parameter set (SPS): A syntax structure containing syntaxelements that apply to zero or more entire coded video sequences asdetermined by the content of a syntax element found in the pictureparameter set referred to by a syntax element found in each slicesegment header.

short-term reference picture: A picture that is marked as “used forshort-term reference”.

step-wise temporal sub-layer access (STSA) access unit: An access unitin which the coded picture is an STSA picture.

step-wise temporal sub-layer access (STSA) picture: A coded picture forwhich each slice segment has nal_unit_type equal to STSA_R or STSA_N.

An STSA picture does not use pictures with the same TemporalId as theSTSA picture for inter prediction reference. Pictures following an STSApicture in decoding order with the same TemporalId as the STSA picturedo not use pictures prior to the STSA picture in decoding order with thesame TemporalId as the STSA picture for inter prediction reference. AnSTSA picture enables up-switching, at the STSA picture, to the sub-layercontaining the STSA picture, from the immediately lower sub-layer. STSApictures must have TemporalId greater than 0.

suffix SEI NAL unit: An SEI NAL unit that has nal_unit_type equal toSUFFIX_SEI_NUT.

supplemental enhancement information (SEI) NAL unit: A NAL unit that hasnal_unit_type equal to PREFIX_SEI_NUT or SUFFIX_SEI_NUT.

temporal sub-layer access (TSA) access unit: An access unit in which thecoded picture is a TSA picture.

temporal sub-layer access (TSA) picture: A coded picture for which eachslice segment has nal_unit_type equal to TSA_R or TSA_N.

A TSA picture and pictures following the TSA picture in decoding do notuse pictures with TemporalId greater than or equal to that of the TSApicture for inter prediction reference. A TSA picture enablesup-switching, at the TSA picture, to the sub-layer containing the TSApicture or any higher sub-layer, from the immediately lower sub-layer.TSA pictures must have TemporalId greater than 0.

trailing picture: A picture that follows the associated RAP picture inoutput order.

video coding layer (VCL) NAL unit: A collective term for coded slicesegment NAL units and the subset of NAL units that have reserved valuesof nal_unit_type that are classified as VCL NAL units.

video parameter set (VPS): A syntax structure containing syntax elementsthat apply to zero or more entire coded video sequences as determined bythe content of a syntax element found in the sequence parameter setreferred to by a syntax element found in the picture parameter setreferred to by a syntax element found in each slice segment header.

Where the temporal Id value is defined as follows.

nuh_temporal_id_plus1 minus 1 specifies a temporal identifier for theNAL unit. The value of nuh_temporal_id_plus1 shall not be equal to 0.

The variable TemporalId is specified as

TemporalId=nuh_temporal_id_plus1−1

If nal_unit_type is in the range of 16 to 23 (coded slice segment of aRAP picture), inclusive, TemporalId shall be equal to 0; otherwise, whennal_unit_type is equal to TSA_R, TSA_N, STSA_R, or STSA_N, TemporalIdshall not be equal to 0.

The value of TemporalId shall be the same for all VCL NAL units of anaccess unit. The value of TemporalId of an access unit is the value ofthe TemporalId of the VCL NAL units of the access unit.

Referring to FIG. 15 for example, for the picture B there are more thanone reference picture in the decoded picture buffer with picture ordercount modulo MaxPicOrderCntLsb equal to PocLsbLt[i], sodelta_poc_msb_present_flag[i] shall be equal to 1. Then as per theembodiments described here, the delta_poc_msb_present_flag[i] is alsoset to 1 for pictures C, and D. Since picture D belongs to TemporalId=0,the pictures in decoding order subsequent to D do not need to set thedelta_poc_msb_present_flag[i] to 1 unless there are more than onereference picture in the decoded picture buffer with picture order countmodulo MaxPicOrderCntLsb equal to PocLsbLt[i] for those subsequentpictures.

The terms and expressions which have been employed in the foregoingspecification are used therein as terms of description and not oflimitation, and there is no intention, in the use of such terms andexpressions, of excluding equivalents of the features shown anddescribed or portions thereof, it being recognized that the scope of theinvention is defined and limited only by the claims which follow.

What is claimed is:
 1. A video encoding method, comprising: encoding afirst indicator of a first picture as a first value, when at least tworeference pictures of the first picture in the coded picture buffer havea same picture order count modulo; setting a first indicator of a secondpicture as the first value, wherein the second picture is a subsequentpicture of the first picture in encoding order, and wherein the firstpicture has a temporal layer ID value of 0 and has a NAL unit type asone of the following: random access skipped leading (RASL) picture,random access decodable leading (RADL) picture and a sub-layernon-reference picture; and encoding the second picture based on thefirst indicator of the second picture.
 2. A video decoding method,comprising: parsing a first indicator of a first picture, when the firstpicture has a temporal layer ID value of 0 and has a NAL unit type asone of the following: RASL picture, RADL picture and a sub-layernon-reference picture, wherein the first indicator of the first pictureis a first value when at least two reference pictures of the firstpicture in the coded picture buffer have a same picture order countmodulo; setting a first indicator of a second picture as the firstvalue, when the first indicator of the first picture is the first value,wherein the second picture is a subsequent picture of the first picturein decoding order; and decoding the second picture based on the firstindicator of the second picture.
 3. A video decoding apparatus,comprising: a memory; and a processor; the processor coupled to thememory is configured to: parse a first indicator of a first picture,when the first picture has a temporal layer ID value of 0 and has a NALunit type as one of the following: RASL picture, RADL picture and asub-layer non-reference picture, wherein the first indicator of thefirst picture is a first value when at least two reference pictures ofthe first picture in the coded picture buffer have a same picture ordercount modulo; set a first indicator of a second picture as the firstvalue, when the first indicator of the first picture is the first value,wherein the second picture is a subsequent picture of the first picturein decoding order; and decode the second picture based on the firstindicator of the second picture.